package cn.weiyang.biz;

import cn.weiyang.dao.HouseDao;
import cn.weiyang.entity.House;
import cn.weiyang.entity.HousePage;
import cn.weiyang.util.SqlSessionFactoryUtil;
import org.apache.ibatis.session.SqlSession;

import java.util.List;
import java.util.Map;

/**
 * Created by Administrator on 2017/7/7.
 */
public class HouseBizImpl implements HouseBiz{
    /**
     * 多条件查询房屋信息并分页
     * @return
     */
    public HousePage queryHouse(Map<String, Object> map) {
        SqlSession session=SqlSessionFactoryUtil.getSqlSession();
        HouseDao hd=session.getMapper(HouseDao.class);
        HousePage housePage=new HousePage();
        // 根据条件查询符合的用户列表记录总数，赋值给page的totalNum变量
        housePage.setTotalNum(getHouseCount(map));
        // 从请求参数中获取每页大小
        int pageSize=Integer.parseInt(String.valueOf(map.get("pageSize")));
        housePage.setPageSize(pageSize);
        // 从请求参数中获取当前页码
        int currPage=1;
        if(null==(map.get("pageNum"))||"".equals(map.get("pageNum"))||"null".equals(map.get("pageNum"))){
            currPage=1;
        }else{
            currPage=Integer.parseInt(String.valueOf(map.get("pageNum")));
        }
        housePage.setCurrPage(currPage);
        // 动态计算总页数(总记录数 除以 每页大小，加上 总页数 求余 每页大小，如果余数不为0，则 加 1，否则 加 0 )
        int totalPage=housePage.getTotalNum()%pageSize==0?housePage.getTotalNum()/pageSize:housePage.getTotalNum()/pageSize+1;
        housePage.setTotalPage(totalPage);
        // 根据条件查询符合的房屋信息列表记录，赋值给page的result变量
        housePage.setResult(hd.queryHouse(map));
        session.close();
        return housePage;
    }
    /**
     * 多条件查询房屋信息总条数
     * @return
     */
    public int getHouseCount(Map<String, Object> map) {
        SqlSession session=SqlSessionFactoryUtil.getSqlSession();
        HouseDao hd=session.getMapper(HouseDao.class);
        return hd.getHouseCount(map);
    }
}
